aboutsummaryrefslogtreecommitdiffstats
path: root/src/app/groups/[groupId]/stats/page.tsx
diff options
context:
space:
mode:
authorAnurag <anurag4884@gmail.com>2024-02-28 21:13:25 +0530
committerGitHub <noreply@github.com>2024-02-28 10:43:25 -0500
commit2f991e680bea37d1f97ea77df2343200f3899817 (patch)
tree2f043e4aafaa99340b8fac6153f1741d9dbb7ab2 /src/app/groups/[groupId]/stats/page.tsx
parent2af066038351ab0634c359a688fe712a539992b4 (diff)
feat: initialise a new totals tab with basic UI (#94)
* feat: initialise a new totals tab with basic UI * fix: update group tabs and add stats page * fix: styling within the new elements * Prettier * Display active user expenses only if active user is set --------- Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
Diffstat (limited to 'src/app/groups/[groupId]/stats/page.tsx')
-rw-r--r--src/app/groups/[groupId]/stats/page.tsx49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/app/groups/[groupId]/stats/page.tsx b/src/app/groups/[groupId]/stats/page.tsx
new file mode 100644
index 0000000..eb7fa9e
--- /dev/null
+++ b/src/app/groups/[groupId]/stats/page.tsx
@@ -0,0 +1,49 @@
+import { cached } from '@/app/cached-functions'
+import { Totals } from '@/app/groups/[groupId]/stats/totals'
+import {
+ Card,
+ CardContent,
+ CardDescription,
+ CardHeader,
+ CardTitle,
+} from '@/components/ui/card'
+import { getGroupExpenses } from '@/lib/api'
+import { getTotalGroupSpending } from '@/lib/totals'
+import { Metadata } from 'next'
+import { notFound } from 'next/navigation'
+
+export const metadata: Metadata = {
+ title: 'Totals',
+}
+
+export default async function TotalsPage({
+ params: { groupId },
+}: {
+ params: { groupId: string }
+}) {
+ const group = await cached.getGroup(groupId)
+ if (!group) notFound()
+
+ const expenses = await getGroupExpenses(groupId)
+ const totalGroupSpendings = getTotalGroupSpending(expenses)
+
+ return (
+ <>
+ <Card className="mb-4">
+ <CardHeader>
+ <CardTitle>Totals</CardTitle>
+ <CardDescription>
+ Spending summary of the entire group.
+ </CardDescription>
+ </CardHeader>
+ <CardContent className="flex flex-col space-y-4">
+ <Totals
+ group={group}
+ expenses={expenses}
+ totalGroupSpendings={totalGroupSpendings}
+ />
+ </CardContent>
+ </Card>
+ </>
+ )
+}